/**
 * 
 */
package com.nari.heatshare.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.nari.coreframe.dao.hibernate3.IGenericDao;
import com.nari.heatshare.model.IAssignMeterDataGather;
import com.nari.heatshare.model.IGprsUploadTrace;

/**
 * 
 * @author Xiaopeng
 * @date 2014-5-7
 */
public interface IGprsUploadTraceDao extends IGenericDao<IGprsUploadTrace, String> {

	/**
	 * 通过文件映射唯一标识删除GPRS上传痕迹信息
	 * @param uploadTraceUID
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-8-12
	 */
	public void deleteTraceFileByUID(String uploadTraceUID) throws Exception;
	
	/**
	 * 通过上传批次信息查询对应GPRS上传痕迹
	 * @param batchStatisUid
	 * @param uploadDataType
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2014-5-7
	 */
	public IGprsUploadTrace queryTraceInfoByBatchUID(String batchStatisUid, 
			Integer uploadDataType) throws Exception;
	
	/**
	 * 分配表数据GPRS上传任务原始数据的痕迹生成
	 * @param meterDataList
	 * @param batchStatisUid
	 * @param concentratorNo
	 * @param recordTime
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2014-5-7
	 */
	public void saveAmdGprsUploadTraceFile(List<IAssignMeterDataGather> meterDataList, 
			String batchStatisUid, String concentratorNo, Date recordTime) throws Exception;
	
	/**
	 * 查询上传任务批次数据与痕迹文件UID的映射表
	 * @param batchStatisUIDList 上传任务批次数据UID列表
	 * @param uploadDataType 上传任务批次的数据类型
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2014-5-8
	 */
	public Map<String, String> queryReferBatchStatisMap(List<String> batchStatisUIDList, 
			Integer uploadDataType) throws Exception;
}
